package main

import (
	"errors"
	"fmt"
)

//go语言错误处理的方案
func main() {

	//test()
	test2()

	//for ;; {
	//	fmt.Println("test() invoke after")
	//	time.Sleep(time.Second)
	//}
}

func test() {

	defer func() {
		if err := recover(); err != nil {
			fmt.Println("这里有个error res=", err)
		}
	}()
	num1 := 123
	num2 := 0
	res := num1 / num2
	fmt.Println(res)

}

func readConfig(name string) (err error) {

	if name == "config.init" {
		return nil
	} else {
		return errors.New("文件名称错误")
	}

}

//自定义错误类型
func test2() {

	err := readConfig("config.init1")
	if err != nil {
		panic(err)
	}
	fmt.Println(err)

}
